#   --------------------------------注释区--------------------------------
#   入口:http://je2lehn23v-811808501.qsioumn2.cn/index/center/poster.html?pid=248848
#   
#  
#   需抓取数据: 
#   * 填写自动过检的api接口 本地 内网ip:5000 非本地自行进行穿透
#   * 不想跑的号可以填wxid到 yuanshen_ddzapi_notrun 多个#分割 注意是原始id
#   * 登录多少个账号就跑多少个账号
#   变量名:yuanshen_api
#
#   需要自动提现请填支付宝账号#姓名到 yuanshen_ddz_alipay 即可自动提现
#   抓取请求头中的user-agent填入yuanshen_useragent 无论多少个号都只填一个即可!!!!
#
# 下面是自定义变量设置(注意是修改对应的环境变量而不是改文件内容):
# huaji_ddz_max_threads           #最大线程数 默认1
# huaji_ddz_IsRun_ReadTask        #是否执行阅读任务 默认开启 开启1 关闭0
# huaji_ddz_IsRun_SphTask         #是否执行视频号任务 默认开启 不会进行真实关注 有被暂停任务的风险 开启1 关闭0
# huaji_ddz_IsRun_GzhTask         #是否执行公众号任务 默认开启 不会进行真实关注 有被暂停任务的风险 开启1 关闭0
#   --------------------------------祈求区--------------------------------
#                     _ooOoo_
#                    o8888888o
#                    88" . "88
#                    (| -_- |)
#                     O\ = /O
#                 ____/`---'\____
#               .   ' \\| |// `.
#                / \\||| : |||// \
#              / _||||| -:- |||||- \
#                | | \\\ - /// | |
#              | \_| ''\---/'' | |
#               \ .-\__ `-` ___/-. /
#            ___`. .' /--.--\ `. . __
#         ."" '< `.___\_<|>_/___.' >'"".
#        | | : `- \`.;`\ _ /`;.`/ - ` : | |
#          \ \ `-. \_ __\ /__ _/ .-` / /
#  ======`-.____`-.___\_____/___.-`____.-'======
#                     `=---='
# 
#  .............................................
#           佛祖保佑             永无BUG
#           佛祖镇楼             BUG辟邪
#   --------------------------------代码区--------------------------------
'''
Create at [2025-03-27 19:14:56]
'''
import requests
import os
import sys
import platform
import subprocess
import importlib
import datetime
from urllib.parse import urlparse
import logging
import socket
logging.basicConfig(level=logging.INFO, format='[%(levelname)s] ===> %(message)s')
log = logging.getLogger(__name__)

THIS_Proxies = 'https://github.huaji.asia/'   # 网络不行就填Github代理 这里只给出一个要是不行就自己找 https://github.huaji.asia/

data = 'z3Zx67EZViuYGEJc6Q4sRUrCKgMHnST7pM4Jpk4UfqcjJIdlxRGctIXgDI5UR0inKe9hISrryXE7tVMDPGpxrHuz5WrbQpeFCO+1u8Bsfjf93/stbAtZ/xMS4+wTjJeU4ur3f4gR4EX1OAd/R9uiwRaGhiKRWGj68nEC+jVFbvCorzXx3i2QcFchOXLU/ecx5ecdqPDseDa/HbRzLZwR9akWvqjwMMTwn3PcOcH9t0UKmXALuX//NGxEKCBGRJtEA18NaBdxPIk+yxCUZr05Ihh3n6Jjnfd2pzRqSVDPD7n+WCsIRCCLMeE2cxmJEVfCjj7RwylDfcUasLV6ZHAWgSJO056VBxJ4RAiz5u4HYDBfseKzOjoztIq2ZY/lyqf1Mos3zRX5x7cdfVvSj3pObcGMbcZRbKVa1zm6NPJPVzHuSycQZpriMi3D5XdpK7NYK4/SzlMofZB6EnkT4nyJrXyi0dNK7krKkKi4QudKvqDPXb7+pB/O95wIgNx5Q6oPf/mm65FiElwM6ctHsOobSUhxijtQHnw2CXHIPIJ7/l0JXUojTl7mAISzgiNEb3YoIvsMJWTzo9GVRqjZtEU8J89WIF0zRUv1cj3M945mp9t7fGHnWDBYbAjf4BqVx8zC9kKk85tZElqKkhRJj6Opowafhsk4bxiM1W7hThfLwY5u/kJWKz1GVi/cAwLKBDpEwhnAvWCJcnJVcDnjv/M5llbPMuQM0W3SEE5JAJllRqF6XdtHKIQhhKVv00KpRE4rsICfHHQ/eX1TGOJmwg1KvZnZXM/82tCC+FwNK8ieXoiPUY+isaLOmjlG4LknluwZn8XeYj/12YQg8XHATlMVJTGK67zpy4kkd/lnU2QTdQeV7EdUpk0ZY36+5HuHR7R/m6n6S6BEhzruhoCXk5HWaZCaje5k7eesIhTAqxEb3C795hgjCI5PUNkuFYTM0NnjqbjawMFgdzppHP+WAg1N+JSA5ksMQmTGC8Kv41PvvAvlw+osWfIxqrq1qM4kdJyGOWLflJArABPjVh9/S2SfRAtSUVCX197kcTdVRwaM8ERsRgHb6Dk5i3tTI42hvvtFg1Sg4ZpV2oDBFqQX5ifHNpMc5J1AKYZPFzLHYJdfloZFOVPqjPJGl4Yggy0M48W/8A5S4lLPYyuTlPZ/Htae6vdiC3HKe65qk8gsrKowX7gc4ZZY2VCowQ/wO40oLEvraSvkCU4H7mioILLkvrwSJyom9z32OxVNsgocqymHbaTTLBAZHKPKLeLIJpJNQXUPq2FZfgwBfPBZS409QfgyzlVDN5JdLV3mRzcKjm/bs6qa9Uee0bzJzI6O7A5hU0lNVa4N4KxWnHJ1gUm8kCSFoJejci9eGkbKWfswxHY9aA6oruPyRfSY264XAQHuy3gPnE/0tyIVu3frBb3E/ig2bC30pixXDwf7z/sXlhY1Z8JgyPiI+ysiJJ5F35KBxqIT6dQ5hB5BQlJmRj5YUOl+rTdbd7YRZQme3HWvQ3J04Lb1mnZxEcwgYBfUpeXQXJ8NH/rxouvw7UYHgJXoGn681dDfrCzQFG/MauO9M5wx3bRUYE436XznSEF5J5AUjvlw9vrym8hMtBx6Fe9rrOcQgGoO101xUd0dM0WVjdEr0wl/6TKv5Due2dU50xuABcv/uHCWSN/aGxOm0mQhY0VrbOHCKuAb/yhgh9rO6TVdRm8kGNEtaK8itZZffuQjU0/zZkIP41Pn6LHo3JY31dkRKxOaUp1qcOaKOlsSFhzBQZfnEE1hYd677LH4BsfhNjmjNUJuhv12z0jsRnEGdHqsK56RplY52r6QllyCDqqxYkvPAWDzQmNe04XP2eXxt/hVddC3RH53GTgzmq7swYrwAfduzrVU9cG89WGVGSY40AIx4FJBQDfoyRtlSZRE4QEyJKgw0COtkkAJvKaRlLKYtQaTT9MqydFHjsyj7oMIjZsskG2lBWrkjXdcts7/QPT/3uh5OfheXBqWnALiLWgpf2Uq+LrCLuL1jOBMvkHeqZjinzDPBlbm4hD1YGSMwOpCxQT9x5brVyuBhMKzidF6moTJrLzVbBeJBnXVYJ3tZjqXKx3pMeZ+kHV32oFW+pcw/KwsaC0Y0GrWEXhgMebF9QtsOxTpIOE4wnkMcFTBkauWgAxsVL0Oo8FvYiL5pe4Jjuxo5TvTrvosmVcXE/mE7Xcw+AB1NSFHGOM0Euc4ZlvPQ7UxC8KYF6nJhMBjJYZh/6ujc1WYSSh1sRZBnt07VSMLKzJ6LDNAY/x9+t1TryfmIQ5r6qI2uW4jBqH3b6hQ0GPdlNAryrktl3/iwwLwatTtGJkbJclixjtROvQdVdZZCCriPPWhO1JFbuN+xNolYQA/VowjjLrsEd/HFSfJAwXzS88MO8gvnwJPIUjRhJeOX5H5AjvQNuS11iDzkSXVdpnVIlcHv5UapgSWxAgt53Ue78HtUD+JUpUKCc6WR15dYdItgXxRSKE21DiYPtPLdne/0i4oqKQfN0tA1om7EtbXvUcMBam2I1niv/rgz6oVo9pUgnGCr4mHSetuZCkE27gI+YpAcFxwhDlqCWEQlLBzyEcRzp183H2Kcagj5FWAOdlU1DbNtDFZG29K0M5hkmqg+dK6HbG2E3DphP9Xx1Mga3dzVAvzboO4Ct4uMs/jVmMusd0OI4BXbpg4HD391o14FCfIpIQl/r/VNbHcSVbvBZDZch6fcpldssdjUvikoZ87ve2exnoMBaDDEssb2spYYHO9PgTZzXdbLYcmbgvvlyPy1dFz5f68g/s2mdwl89as7hQZm9FY+lB6YohSVOm0V4CHCj43q3FCMw5ad0kvzvaQlfBBJNL5UOWw63gUX7VIOAgVLMzRb5NbIAicp2P+WGTTbrsKqHGjEE94DqzlwppvQyKs1vZqhjKxEZKASmmeqoNWsCe1iqf0vX5hPmluMRYzCMAneZYexLcb6P1gNJmdOAE4yM3Hps2n/p5D88+1RruZGg7E55EzFOcuLe7pTbZCGgp/cMikKTFcePaucHTLOeI7ahv6HsoHx4L4h1mS/aafIPkKwEU6UTfk2NFYxZBhYcqgGAZgykCptkbfqH43tnsVx875hIGHOkjhLMI6LgpKZldhgfpFx9UqSW2HO+Wi50s5t3wyLLPSx8tE+RN5hw6yPOyBuU/I7yfNu/DlptbSfYjrjLnYo6FBFHcCM77TXKJpzZravL2/PLMUWyamnAxbDneWd8yOkRJ5xvSjCu53NMxW5Jw/8M3MXgObcpJOH4XAeb9SVGlxVz293dPSOoPJtcYmBVHrLuLmgs0fK/XrOd/TRq5sAFaVL+KxfK1J73DrNSEmQRMKe02OM6b2dzKQ/r+TABz7dfGyD6hI1jaGluQ8ZbwCtL6NRMaAkwTNN1L8r1oJzRMMFpykWnW48CLUSUs+o2JPlt7q7UJVMCPh/37R/TwUB10UQ0fOshtsspKEDsJ/LD/PLGf+GzH32WPxTQTO8lnQbyKcbN59Gp6vmp7uXv6nvxFu+z5oo74tlC21jb+p+15aj4eBPYRw5NjJXveF+3W5PCMPTCAwMnl/TnEFpuBv7p5o3HUD2gdxCadSMGhxNjwfryRCOiyg75j9zYLfQR3kkw8wjfmCN2KiqKLG35j0C6TED1wHADW5whseK9DtcPhw3y6F/eabf9VETPbgUyAlIDfD39oP6kNdtQaXvPILkeIYfnOLZzieHR54vPsBHlAlhE5drS8bghDGposC4DBX8pHTWfbUf/F7U3PGoZxGap0gDps4FX1nMe1nrUkoALMb79bk6dhUNo38aterRVK73u0aj9Yu/FOCyWWF8bZFBfBvfoIuJvuYqa7t7TnTV0Y0U4Iv2zsLN26srHnlLQQ6Wj0TF8m+w3N0UYZE97ueGoPlrRmK9kAMYPeamaYA5X3WaO/DVMnOTqWmBpII1ibGelq4Bt3cT5S0x9rsFNjWoaAuInfi8MFcStS41WjHZ8k87aId3sD9ookmWBlYIusmB+oXOUWxb4k9DIRCT356R7zO+9WRY4zKdgZmSKIOIPrs3/Dh6/zcXd0TGP5YqELWriiBtuJprZh6/F0rkDMyWKvMjQo6+2s1VeYak9GUgFxxZIBmwycsKixdmWC86UaDknPo488hxVWiC5StCZJZ4/gQsItBqZFLKBZou3ra2TVWi/Y0HljVjwbGi6q0MOHGG4zetK4kU8HIXD/qLVpjknjVID+WxR92P8eGSPePQgYclXA1C4aAkNUpArBJ0B362k4GyN3F3YMnzD5bvNutAO2J8EO8byHvzpSblGU5bZZqUogsiVGvXrJabozeWJ+1glbEsXB/WutrJKkEV5Oc6DSqgqFfrIjccPRdefg3HfaLVD6eH+OhfrhMJAZ88v3pE6pLGiAjzeUpeBhWDyKVmMjAR9h9yUgdeCyCtRmCh4bsnNdjxi9HcrdV8ZzKRxgdEysqeN+rQpKnikf/QvJ4EoV+0YmpHInYOu8mdccJl5VhpVzDEx8v2LZISaeFdzFa1blM1o61SmkFhLhKP9PTYfFRkpq7CczpaQTjomSpzelXSZM28MAwZdz0IzfELKonzlOQiL+qr0VniY3hlzAv9fW6i6k9C1S7z2Phi4rAnPoYk78yHCLbFMOut65qEP/KSvzcA4m6fOPR42/9lgSvc0TEQ22MbFcyvRgr/g/b+tNK0xe8bxX6x1WG7RgplTbf4Adv/5ax4W9wZVijGas+dukcIXesKHv6xPM+JmLx5mn8EXYhIZjTo8R5Tdo4jwxzonQp2bbU+VDUZkY7txYNkTbvaYM++OwCR7hWja0BKoUtT6ZoB4f7pEBisdXBki/lhmSENR6NN+mlLmDXzhIWK48DTAmHH5KOz+1M3STWeWzwziW1/f3iPPPe85mXBOrKWKO6pgOkgHYD2+NdC+LpoCl3XPFz7JbfnVDFzsJ7MnrC8aD0fES6BMn7ikXOWTqufmufPTaaGR1HMsdPJ1CzZ0a4gdLUvPvdnisdiOKMAQTyiPi9Z/CrpHkJGmcx4wn0CszkYZgGth7WbJ5eBvrx1YD/GJno+ZRdlUlvuFDu6eYz6LiRaeW6dP3vKzV8KyDzx7JWCa95Gjvxx/zv3PE/jOXs8E7QTkh8umU5bexf2hvteNjOCm6QOb0x+oz4f5SxbLgUjYKj8dK9gMpIbQ5CP6cSWLpwqF1H8NGumU6kd7SRuUemuIs+ZRJx2XMbkKqJyQvXbU0IQj87YKQLvTTz0KIZh9RUWAReBAVDLE9OjnwUsEzGoEfDOF027zkcD8ppngpm+9LDNkmYhd6NQFteVj0caUZfZEIh0/nuheTVp6L7aKDn1QUMsdP6Td+ShB2sMqAgKcRVW+5itNwnJJuctAD/nLvni1kNLLswh98hJpzgLUQAngUoW6t8zq4vgoyli6ZETND3IZEAH/6KJlr2KryBr14mMuagtzZSnI6u7y2xzdd5770mJJ2hum8giILGHF6p3lg0ap+V7l/o+OXO1QRNXNPEsnrjnlrGBJezFm0DFwSFZfMFcqSykjZG1R5aco6VGeJrRqJ2XNN4UH8l1WSRGNGsWMc1Wr9bkkswQMsSqBEigcWfVu7rvo/IYbYm5rYifb+UYoz/ZK+ACKkoEiuoZH7w3ZHsMCmJzXYhpHbCfK4sKjCMvoG4X8aUASjZXWemB+ModcKi5MED3ChShAKN4gmeU52pJ6O7T3bU6AXyPbfCeOnDS1j44PkaBVzt6G+vDeg85tNRP6tyJdUAAlRoC1UREBPQkP/qltynx/dEpfIeebsc8gsDQkk53ArftaEuTvdgU9W6WeXNh3384TYxc8UotCT65FTiJ7fI9VVzOEZ5WUX1RVfm4Sv/+B58CBYj7B207TGc+VhsJM5m7A4f5ox6E68RnTG+e/ot8QRp4GPrndY38sgrknrVMSWHObW824SG5qTTdmDKBgT0pbCFuvBQq/g8fY8pvuN2c/uDXYdEYBM3rXbNAMSNS+5DfGTEchM7LS0bi7bBjIibeWoPAIqf0qqUentBA8u2lh8RUwMexz4VR9zw7xYfdil6jeFSv89fO9apJQMESisWlP8KMWQX3VIiaqwTdS1PPSPBPwNh7ahVAjbkmdHevF7f2kg7HU/N+TvcR4KAmRZSjqngf9BONo2mpBTlOaxOaiLsTxOKjdevssnfl+4dNUZLQavslU2Po777A37YdE1Mc96y2y79PVbSUWfBYqmiuK+xJe+uL+ljGiFrXhAuPKot2ahZhMujr5oKtkkXXTqdY/5ZIQZa6zbv+eTwXH8oNp3WAxny8M93zaqJbZ44PXmlIzvG+TFwN4DTD39+qTDhsp0Fjn6+GULiudaB7orurv/As8M59afix0X+MlFNp4fKA3p91B5ZW5MJD38fZehnH5jmqNYRof9eF/iPJRusavFuXciq8d3o8x9CF+X3g4Sg2QN8F5sD4BfKi8ojSHlRGEXInHfgZo47Lh8S+ng2z51k3GpfXH5QodnKoRFI9bO4Z4+2Vf8dntBepaDKq3aAwf6cUsrTd14U1eg0IDQ1rfrgZW36kTR5eYYvqs4AQkUFI/7pT7TvRMS8GspHYoZyy5f2sZIAIAh6rqREbO9TIkd94I9SKViQD0pNk/BfxNKsVo9ewm9R/w/aPT9JtLRVrRkzHqE2Qv1QAeQYSXd8VgZaLpZDJzoZ4w8zdJLcGoPotvwgZxVVFfncrXmL/gcGhBBr60IzHtgcGxxQlxWb41oJKNr5l9knZLXTUal/Cfoi81HfR3RNFwjycNKoC5pZQJeO1qI2Y9EiVfYEFUCWyYPFaymdX/AswVlBeCOVoy7D2tmtWTbe2WzfLLCTVrEMzzPHgHNHxtJVJtsckaK442AqZ59AfCpLU0rRw/jlnATe48MJcD5jd58NFkZqdNkGoi6JUVENWzyG+kCEFYxL8QGUd8s8L8IL96iv36FGOaPsUXsPdbKtONccf5wlFPi86uLHUKvweMwNbk/Hx8ZOt6HnNfGvk9TDr7Q5AOCIDLLjD9Y2+R4mCpFXd7+MZhH5zzXSuP1bYMYAWpuIqqvMs9uNvbShLKmoetiHOJ5420pqRacd2XsSBEgLmhTUmfgk08jd3obcYOJg7bdybTs5jXwc7u6ef9k4niEFsEqSTlej7SEyvmwPw4AhU7B+O4zVuI1TU4YaVl/vlgDlSOzaodVwb/gWBuGMgEQEsF2rfgwQHdeMJ7WxGOIKpwmS+be6ip+z8Ad+BK8SU+/G10ejLX5HrxavEjGH9Dh9MpJuGc/c7JG7+Rps3NSaaEXMbbE930ML4Q0+9safrH1Y72GHWEZlbHnEzDE8OCGXT42w+szWYw6WnGrWvuv4M9Bhn5Gz0D3WzoSfIfcGOQm+lZ4zTyx51ERUQhmRg36pEP02AnwWdrO/TV3yjvlRZMAI2JGPeN3yfpBhoy0E9ioeZ2XdmH+H8Xg2Kk//zCxZWuBnvG41NHlWfygM7GmPL8lf2VyCEhjmi7P65mBxPy6nUlQ/R0KUcuG4k69UfJ6QcKS50embK2gvqwRem0FLd1I4smwOjrWO7s6KlIjZRbky72rVaJ3/tgGIVTslPXyAseds+Ey0OFGgQOcgyygpK0rkofPaF2QNyr94ZSObqZc6VNIedqe4wbww3TVgD9YN7iEo4kcGdwPqpVKXQITZ/Pm4DVLyvemXMXtMx21mnw8r7tEuzgAPdXtBwIWagqhqqZr5fnufVg1rxjDMl6w4zy0/irM+hoV4McW5vdF8yk2M2DyL5G/ZGWCJA9WtNqzHMZ/gak5dKm8QObQQx+/nY6/pvP6AwLKmMtRL3MALaEcQYRZ7vzJGmiKzGy1r7wobsFb1eF87Py8MMoXD6Q1cCEUe4Dv+qmKfsuoJrMJk4v9KeQ43lcKfw6VaYbiARPoP9UA6J2tMDwsKp65SmxhwusigD2/rL0GcLDoOJZR4CJABDvez8nayu49+oWvMCiHAOXsADp8zxWFax67LJ2oHzgYhiE+3TiqJ5ytQA2Ypns/e5uif811EvbiuWUw1Xcsmqcbjcf9nedEcDcrD/MuTk2seIv624EJ/NdK6PUGd8sHEwaURLeU6TvUS0nigLjHMLz5DavZDTDQ2Of3h18x8i//Br3SB08Xfmjv8pRF6L1E/xysGRiqVtF8Nc6FU8PN3hZoLx54nXwMDFSBSnvkJH7nKuiP3ITuX64TdY0dE6mvrxT+Bk7HMNQX1w9YEgS1TqrLXJcoO9msmFc4Q86JnUwGSRm2zb1iDCZlaDIcXjDWWQgU3dohr7mkmzWTss6nl2eGfWpNhOU4Xbz3wC0ChqBttXj3gl87LqpTlJSfW8D5YIEoljPv+JLX25mMrHZu91RXQLC4dbTP/f5InPLPSTDTShTpg25nqb7bEv8tLDZPx1vd93s0NS4oZqWVmoVImBIgP0qOZp7LPL2DWEuambvztJQ5H17s/2587jqykIRF3B6Tg/CRBVHwpUY4CnPjf7QSjgoLyJMqweAUP0uqua0hmR102dHp3cESYfNGtWjUetPAFc5Jr3PyjCpY06HFZQ64ELoSE7CkR5CDAqP3mqXC3e3cmtULXcCCVznK4ewEla0kBlu59qfeCd+7gToQg7V7O2h8ZXVgZjc7HGEXoDi5ezjHxZ2sBEsq/a2fIJFazqQevxZbfklEndYfl5BoGS7S4CC5dCyD9qxd8T3YnW+svht5LG2td2UQuFQogeNjDKPDIXe9DormUaXVfAPpDZEIiW8nTDNmCbHHLBz6s+eqNRjcm2XaHGDxDlqNaC7cwiDtf+5ZmII3ZMgvHRTeDEiY0m9K3MtROgkrS+ag+dTC8Wb/if1qjvr5vu+tPezt+D0NNcqjmKcByoOMMmNcRFw7CLT/pqStjVPh+vWnJvabjtaiUk18mDctOQQJ0MGwZKknRYlc8YScR2WrYoap+zCXPttjHrJEWaYTLheo4zp3pfBfwBwFnlVtntPXqNHsfrb4odu3Zn8E0SaTKRjemE59nYvy1bum0dUeR8N5vGupMJT17LpHyGG4YytpSUTlnB92lIVXA5O2xOG/F6lwQvJJlc4pullGU1SBInjK+b90rEl5ZOJpHFhLgnDqczala6YLYjVTuY1mqlwwWushdAsAJzqcHtlVO2ekNd77wL8uZEfruXxC0zGkQuXyx8YCjlt3KhoNhxzEVWUjpJpu+JvBX+MeTjv0+4M/z+0aGVlih1PwYMInQ6ykkyRCyZgBoXaw2D89rt1jrWY1rWRqsh5xzIAeJ/gNBZjR3mxYW95/L0IpIDf/iHo/i2Vt/KI3KlsNDSHDvRb8Vryp6Z/+tKKLfgiD4+Horq1u+U+wm/l6VbFd6LGubpFYXMAG0Emcc4qukqb9uOyZAznez7LQClP+5pV41h/DUaSkWHeSSEyfYZvFWQMrhw5RHKRBjJ5fzv52z6guu5aHoqOBrcha0P39BPHd1LVGZPfK/0Dw/F1aHmKLGENXO2PrOGXgT5Rabnr7litkJP3GUwIF5QmRAPQZCuKuelU/znddvRnfJT9azN2/259eyp+uaiQrxPMv1lEwAhhT2YlE+H3vmPBOkwW3RBMIgh4OXQbqxeWvHKviFPIDvXWUSWVBB/16dP6RAGTJWEW5RH5OeqJTcmkmYotM/IZ9+H2rxqBXSIrg0ha/cKUFlhAzyCEf5v5kptaVILYnsyNpw02BWJWsccTAtM+vgLHgCIY4gKV15DqlbHb3jl35aRoKVkXKPwnfIag58eB3n5Yy2Oh1xRRjxUgPYCn4Sjz5nfkyipXG/Pb8rKXlygOxbppehbFBddiedoFzT0iEeUHqgraKbDuop/mdp2HwxcOU9nZstFXvW0AyMwuVO4kvH45crpuhTJAbm74AmVEioxhq9YjdkoKMeNEft4Y8gdRrgCWSH9HQXAIVJbL11eovctYwfRQJXOL33Wp4/QBbl/j/D34PB2gEar89C2tVTZLrUB4WJRNBhVComrPeBtlTj8Da4I2PlvdY/A0X3Sezet7nxI8wGKFS5UrsGZ/w7Njp7UfK+nqGCcSRWw1mhtecqaEJ3JKUzFsZ65KYdszUZgbhdvWOgKO2CPEe3IvybaKp67s1Rgk9ofMtToeqRqDIP9CYCffzBMDc9sxlDHkJV17or8E2ZVT9XzqN65/A5RvpmlaNgr5fqRqpMROaCtSSJY3iffORlJOa666c66NWBUEMJzbf2bc05OxRfuDVj4LEFu6fcyjW8qXVjdZkSO9zvSRo8oDQY9nEPacwNZkT4v64ef0Byt2ocUqGUij7+DDJP58rlYdrtVXoEKdjtvocYawfhY8cozBscsMzSeYHEVlZ6OcVCeD670JSyUbRqgOEd6XW4sLXrbiykio+bKWE+1jZr7HVgEYs0ewtpZgOc3W+9jHv6B4iI/60APWtT3PQ2TNGWs3WgJE+gjprTvs2gJKFMCO3z0lyYvRFTMFlCVti+7oRmBreGBRZbwfREbZXXR47S3e2sVxbFVyVoGOKTbTRVJZaD4ftErsDcgo8lpO6IZ0L4HDj801Xn985glOThBe0nh2JeSbyF0tliBW5rAraKTDM0oto3AC67btXtRp7cE3E7r7GmIZUvJjGECZDvUVPGq4OyWfazMKMoiGTAXgXJRAW3QKu5ARhl05V9V1C3iOR9oB6ukXSQq3JgwSoDISriBU2HtBR6N2OYzc3BaNExw08AddATl1vP15eCmEx8LaE4ZPYZsbCSL4BpNcf8jfa1H97gW5V/B0jh2bKSvk+mlJzYC6FpLwLeGw2/PcRD6OnZrbMEUcJMNfxOU36bSX5R5nH/UN27Ntdcv02FeSl2veH0di9aSZNp+2wYCUE3Mq8VQXbWcVBVCgFlUZ72viB63gtq8q2W2VsOxU4wuiNV6DDEz6okF6cIqwx2PjgNhvWoSxoU+NpBd5dZaKdOTq4E7iHhJ2vYGtvya2Z9NFoIMkuOrPn0Qo3Fds5i0NfunWUlzrNNRu6LDeggJ0Hmzt6HGDatALwCQr5zZ9IfIO6vgWZW0gVQmDTEyk8nFPv5xTjZWI2H7mVLqqlHZPZ4Owkz23Yxg7AM9Yk7P07RYdkKnxRGZeU0AuBNsM4eHbd7qWynSJu0jjUO+WdNeSzefdiqY1oP8VEFbG0RfJKRr/yy+RTsIDeUkfA76/vejoMnzoZNd50CetGikj6ysxFlJZzhh/jBDpW2MyKHwxLP3kY6dlRlrHKHJWtTTvymNva97FtxAEi/a/5tnytMXJTltZ7JTOU7a1dDbcVECqkMksMuCRgDo6fASt+ubGXynEbka4tMc+UhOyvKguOSVmpYzbI3bifDtozLhJRIK8N+TWhLHC8qVpgIdQ5hgCcyLSu28XmPW0ThoRPALD1CgmV++vQrqRbtOLoAz9y56GEpOUTfEnbe4Ym8pJaIfXp0pjTSAwsPOXL/ifGc+5uXhnOV+TxlGPmLIahqK3BK9jufKGPetJHZ38ASdxsr8D6osEr8UZmpN9ZtlGob9rTfdzw84QWcELESqf4Dmg9U3LXCFFj0kescEaznrt7oeUc/i8D2vcUY/hjSVLKOvjHdcEben4N9ml3It33K/0aRD8oBoiZ/8hCHfOHb/EAMon4iWkxXMTd2/fLL6TIUHsAJkDhp5IiRLJMVRRIxguhsEUpF/gTY++Lmqa9ntsNIUKasHN7pWdjJqLidsnNWQYTbwk24eZFFyDgPwmznDGCOyhRNw/QaAQYClbnQLAzjG9AbU4U5T1p1oj/Fm025E1aK2YqHAy8jLuRM+84IfCtqw9rwE4r8YfbvLUWf7RejQf7IGyv3GD3nWSODqWUhJiKgVXjz7DvO0aOL/eH/dTwhR+coTwYIL3grmORmweci/mrB0yKAr9JUVnW/whiqbkmqVPrA6pdlVtQrImrVXvyWG9J/mDL5Z8tw629eRzo1TohYLSp7xMgigp27Qa7NKByaZKLhL9p6atHMRWesTwUmDaZV86+BkTrhGMDW2+Eu2eEXHZuT6yBGv3v2IQHAukjIahUUGZXloklBsua+xo+lqh1KLHqetnwqAbXewZMdFqCwLKa5Lmp175U6nQuqkaat4oZRXm9xMGdJln2GeuV2x6yhOnxi2x5ODBKSaAwbh4iiMCGu2Ag9Pt7bTIP4BV8idOK3CoBFoc+X+a+SYiIWh47G6O5Du+o4cjUERX62BUTSQjzA9UREtmF9ujJuEakdsByhTBGxMfk2k7e/+Fs5PdbGE0z0rvPnfkmykzEF7b9sVz7+rGvwN2d392oiCXDBWUhheHBDUDv1LaxnUDkvaEYzidc1mrAnSm2j5oT29SdiJN1gUHIVOCoJ/lv6KhrkHEfiipKLFDtbeTrzjY0yt/858j5fpfBtdaS2CzdW6oO6p286BiaBX8br1hhzsSVLl02J+JQL/4+y5ZY2Dd0f9VVHG2gkJ9eyIQPAeiNNipKBFCcxXdDEEOAMNpmD03CvN95RsoEYcdTm5oD1Z3hvM097Vr6cAEhI+Y0S4EnYpt2Edfi7+exRQMKAuZcPhCqg/m7/3J1Fubwaf6k2Pjm+BVjx/GP+GGmLLdSPMM9ebCGlG9APHywbe95kaoSyGHCSvEt6yHN7J2l9RbxIop7qLvQqjzevxYYSU8NRfUkjJCzLGFHDNSN20iwgMaBfqs/tqx7Em5PxHZdhFxcayBfLOdqTP0mdbOnawmGdDJirkfHnHJAJa7XbalYaDmp6gIhVCXxyotzLVl7XXW5mLSbIRSTzSvEycW6tWV4ZDPHw7LAM5Efj2p3HqtO54sdqSBk6BL5bfPPyHx5RXLMFWjZCe7oPbQABnJCGPN9lytyoaMs4vXI9SSv+1GXJRrOu6fNI2oHOj9kpIueDAAv7oMv3+MFUq3Pn2oIZ0iUwwX9chUCg3mrWeTy2LvgVk0pn1Y0tAXbGpI9fD4EQOX8zXBzWHyVp/DmQuEORqTIF/cf5Eab3nNtSh+f+YosrMchzdSs4tQm4ECWk7yGyZ2znnTD8ZGvwkNqrdy3gmXKNkZS7ns5ioso9FiUen7+kr1mXuyMjogMc9Z5XBm+5egIhsCak3drh0W1w1pMvvabt2l66/uzXFOE0JW1UnoQo3fFHFsX3vacseaFpajIzB4UP1aqDyrpX8PQkUZLxUvUH7mqmIb8NB2EHBHJN8Ow5CoZQ4xbqQ1ZNVk0Tltp8tXEJKZafpFMvsVlzgj6dXgkgnVRQ4goaYRbovBno0o5GAG7V6mm259v+Tnn32DdCtD6TYDD8wJucNQzuqJCGbtwOofBANMXvJpyeyn3H4HE9bD1370+qGTCZLjwcayE5LCMsOk0jTb0rMsJoLep2vgNoSpQwKnv9XCxVgegCCM2uvvhLrm3IG+gGDHBIWN+88u2NmJoed6V3u+iKbjUBgwpolrO4MvC6lYMdMtAmH8GgrxbHNknlNmVUP88Fh7vrYVwjC/sBoY1A4uKn9k4hTI01YahbNKOIxO0+Tdy34jmiiiLZo8mm2TpfZjFia/psu61lCEu4f2ofoW1MGF4VMFdC3zG8VKoMGHzsqTcodOC+J5xQJD+OO68FvQMFVNgW7XhkTL+mhbTWxchwMwKBTW9QHFJ8W9XKIJVLOugMcL0HDwPBIGX+CisAWxjNsp/lncla1UtS3petbvvvZs+AGTC0SLWhjoM83IjhbpFLlJfo2kDohx2+uU7f4K8LoTp4jZrfY3eSraZWjF/e+UK7QtS1BjAfbk3y54mbOJUyzbUWZ7iItoX55/BxdezEMnwM3dY8Ri7/4AXc+R7BPm1+v+GbDS2hWgjcTwtqSmlh0x30ti2ixJ0jxa6o01akPjBOMGC/7WWXvk+F5Ga1yZRB00s2vNGlIKTThD/LOBagHLnUm3BpVEJHQ8YOBo+I2gq8yqEfEgxsrp9URpG+t0njnaEkFT4O/tyiDyBH5GK5VExzQ9c3hw6Kq+mq40jqmbZ7O8k/h3SS34z4OM8fo7X9CfyAGFX1bLMMs0uryFYZzQZCW9SswmsPDneXAgAymszCTq6riCC2gy+FsT8ci77qnqJzG+7mxFZtR1Mta6fwU+9xiYtrnmFrZuVcliu7ofk9zzuaIGFlQRneKr1+W4wE3EXvhKxJftqjNChKmgliTx7Up5K5klPk/9uFR9jZPpwfW1+cEFXwWjIvlJhqrUdfiFCG9VEKEfIM49hyBfhSKnwQpHacJbdQNCu09zGgsDUP0GtIuQ3kxuk3JbG6kf/VmxuP+fs42aGcPvyJ5saNLtl1ny3LDSv5KB9xZ2f8gPq0bQyoX28296KYJi2hGnvJ84HkePVh2muxmoqowBkJssxA/KiFn+TcQT6CQpPSxH48KalbnXjWboJFvAMtLK27PpOHqIF7q6LqBAoKqviYoE75o/IytwI3dJSA033zR8918NBBXjww/VzjwYFK/nQWhHMwCWesR3311B/J+CgjwgdyBiKHXZvo5W+yF5MYdweHZ8kOsRRJsGvDOSmrMkclqhi7inMpRpdUCzCAWyQzV84XI+zCb26QhYgP3S3S8dInXXsu5fEmeIAWlPSsmg6hVLZ8LB7rIteUTSJ6r2ryJM1eMCYqrpCGD0/nx5xgYPkg8T2lAFqVZvZufWJt46syhg/oCMck3ReMNxqkT7ip1G3y4NeEOCVMSE/8/0Iuuhs9DFMUEWgxFilQ+5o7i8XLCcdo4hh1dVeSWM1VX+fGb9FaCd46ll9ABCAQXk5q5rnFdX7CzGkxLD/U9ylHy3KpBlAnFmztW16L/G3f+KX6ZvNEINEflCXK3Rt8DGuhXbom5JqKvXgs3tlZoNLmKvwY8iSUP1bhFQOWXwRDB7bO+RY3YV8LwtWv7FzzNCQe3bOuE2v2yaOXYGpIl4nl/Banv92vfvCAZUdb8+aVv0dyeggz2xBuQWERDd6cwHV07xO42UF7gp99ATPQBi4gQVXIvTn5Q0NylzEVxHcxY5NZRbp8jTaZIlD4qFyJDOgwj+vhn26dUkBg0WF3sgaW62E1cWMgruHQnX9YUXxSqZT4whvF/asg+gePGBnKgD3P8TAyREaECAD8m7ecBgJCNkTtLXrkuJa5dPRJyD/i1NsIVNJgO9AEFYUE7iJOzgW5iMvBIPtZ/QAxhIlorAYqZ6r755ojNLHCinlUrLsNXfrDqL1ext61VYRv8ODQbp198vDPmHaytpKmeac/OVrtzZ3SdSwcbdON966tE+mzXqmlxyXVPQAnQKYT0rQfoYunS9f5pKkAkev2XCgGWPnnNbhyK16aCFzCqGLm2deTYAr/1qLAHl6WnkNOgDb3QJMTY3mGeVWt7mdmNRHAyfjvWubrlrJIjqLdECj0G6qn5HCkEVg0psK5Ra38eqkuE8hCvhe+PwWgJOPNzBejzJsQX06TEn7YIt9nM3pclI1uW6KvTerw7/RYkL+ODZgwfOoHbaIyClCn58HIFxMCyBz69ushG2DMuEnWVj1hYHJds/kYkxp9Il/fV+e5Lz0TRjL57YEA9vEAQEB56XCbaHyelEtq8cUyVLpixzKY/2ap4WxHwNMx44KEPLkNEoIqsrr5aLSvWcocomr8K+sKHX3kpaauj4EOw4QhjlfgenTCIS0+i7oDKGCU4ujNrJyLE0oOEJ0kT+uF1FRrjN45mt+2O4ILFIIJ0l9eJzpwdrQWRPS3XmSpzJTQSMcUA3tUbrshkJEKJKjQTIbMcHv/oZSqWPSBMlgvoDHu30ZmlhW2hBj9YgScC0MZit+OPNbpvY6hbR1mEVeDzHtzS/fD85JZAJ96vXPofSYEptftiwCOTGzqizhzNNOJDnepSUFw8fVDTpHEutPWdjqkZOb+dbQbjL9hocMO6CB4sMX8/DqcqOqNMbDzZ+tf2dUX3YbsQ8m2v3lgn3UZ/TxKL7raTatRk/L4GEzEweMv+mdc0Rr7zlzY3mBjFV/2mp5njq1i0LyIa3N7hKAiLbCRPrmzd8gg+HADqE8s6oF1TgONO1cMkG8fP6Weheg/uueAIAmp/0bO5w3cZ4eYpY15ARnR4F8M2x23SrNlCfy07Jqzb0CW8az55ymZj8BYlRo51kIZDzkLx4ipRvEc1iG/OZwa5WOhYvUfzsnCkisf11YssU0sPad/Ta0c2JfEjYfg+fq827n/vi4NAqVhiEmFj1IMCPa4A5GRrr4ueXnLrL5oQJqJ4fCk6rPBK6Ty1/Or1pXmD/E2RtJBKORSHeVVXKUjIloh3VxYbfi8T1O4F7COe9eJQHS+3CKfkdf8v48tIWAzxt0EseqW/s+Z+7jbnOTQ/wYZCSYGasy5+MogBv44lpf6d14YgWZShy0YMi0z8p5LZgzvp1PvmuQ1LgzsdUi+x0E6euSNs0ST9CkicLAsVJ5BWHPy0bxmIP0+dopg3XXPGlzUaK5xakG3suT4P9N/7lAz4Afs0ImWBt1wxGS4Z0+kkr5TZSm1acR2nlC71VNwrKI8oaf3CZ7V4YGK3U13OXHu03GJsEs9IGJL/QKpGgBnV5z/ODgrf9Vi423uEJyao5jhMOYCWY0TqpF3fGo7UuwxtYrecVPpYMKW6UZO6S0PS/Jfwtuf13d5s+U4h1oZGS3Yi5ra/Y2SMi2CtXknwpGzGCRBDTsBG1hoQNNMvCMZ0ke/G8Az52UiFLpMog5YfGEBfRgQRzcGambWFzb9IIaWABQzn6cNRcWDwbJQb8q8/bgOeGgOpwfklObUkDA9AIWjmO8tYU1ZQp0hO6uSYxnJfQ/pXKCS62n46XLzL/7RQxrHhVemXi91U6lkkqtPmP9AMq9osN/bdlHTrDD5u1+9ASC1/39kjBxbl2gZuXE8YJudBURGsNO4T6d7fyAIQUcqSYXEQCCWbhEm/SkYqwtCEoHIkIqrklcWrl07gZrrqUl20xgq45ePVHzLTCVZ59bfAUFqdMPqANT6p6zadlg2xoqAmObXUV0zw+hp6OYat5zSu9V+uk6DnaCdKBN1LEK6fmmfmpn3aQ5VFAAa5YZTYsAUtsbiYrLJZ6Ij70dGH/bVHzxjsId7rWYZNYH/FpZSJfpgcBA4UD0kt401iE43oOKh3UuFCkYp3YnBqmMohXQpwf8p40fM1WoQRxiZR3lgHzwxMUivP3BZG3HID6WkDrO/8zxwbIQP2m1wAIBT2VVEhxSMAADv7nCxc5mxxXxC0T3Il467SZcZA8CHdfxXn//nhH0iWIem5713mGJDOm7+w8PgshzvpLUOOXjbnCaQwTKJrS6j1HS97+qSExHQMvBXpk0Ox5nTqZg0wf02MGyW5pDKd851aahrlT5OydKO4QCo1HZXyLkCfFenmFgRN+W6bphazxGzLxNNrlQp9tfeNhc/oYUTsy5xyvm9+D/FjHPyOHfr+1ijTTNlWymnzZjnqbk7iKDnc63cns3/tUI/xvIf/ToeOtXSe+fLqW5gDZ7oCjOyWgRKiZm3/RBhw00UY7OIcLA6gORUtZk/bU65panLohLOAEHPgaCy9Y7umxmrN3QLE3T/8/bogSlsvqdE6KYLkGtJFpg50pwRgILjv1wfHLlSESjv6ry5+DkySCEIp0je5lNFYw02NT9y6WgW5Tjjvr8HAtUcL+qUcaRofI8B3D5Enn3Qn6BsJqC7MrKQeBFJoracz0Wdvpj0CQEXCU+An0JVbHAB9NF8v0PejCulvNAYwkd0kVGTTiR4GiHEPlYLEdniFPPP7xyFyoWDtDu8pvj2UvmwRwCq+rsY5/f6DaMpyu1iJjvZqP5s3sdrne680EWX+ELnnaBD6BO/8/w5BMUCnP9TXdQM856Gb0diGWi/4Bn0sDArM/clzPwKqGj/MlRY2I9ta2yF0MPzPYmpPc9ihX/0pPH8kJY7SXrZa5Ewih97nQZwEqzHaXlX+JNuxmNfTOQEko2fPIdyLPzajbe+mCrKqJEXTyxvlRSxFTGO4ciGZ1QPgtGV/7Rt9b8wmO31uAWpU+CVDnPfqKYQRHO11Rn5X+Q5qMTODmkd+x+2dWJQv0fEGDBo+9ASHGIPkKx0TchRYogx3bJ/Hg+XC+04AQD7B8FJ3whwd8+CN4PpWqQWCQJp6cneseFdBmOjZdoteDPXzf3TlPpnFonQN/hgA3P5vSRXmC46ALw7PTLrWrNuCNheOqKYI6a6fNzN1dF9SaHj6vJXWVzCSpuASTnLihJiLAXmqelH41hsbT8ivXAeI4qQSUxcOsaGz/QofN6Z9s+plZaaF+Xa6GnNhV+yRLxtjeKwYcJBO7G59+fVkGqvE/8tE6FlRO1eZgHcohN/7erNokQJfMWr/cXoe7h4wrntjyDreKblkRD9AmrLCCthGxrUZ11Mph+oFMGVKZIhLL835QpDamCjeUs8Kg5rri74qpYIt89YCZAPZ+oVg1wJHIo0BWZjJAZrcoxNetsHURPNJGLnWMLb/OM/sseKS3asW1P7kw3pwMcJ0oW5gSKAYlGK2XoDZx6h3kMsu/bqbp9fREEPkM7WG7/JrEKHLCETO3leW+Osb1W4l+DasTs2iUXKOOwqGUhACeziRPG8tfIIEtnG3mwYzHU056DiJha2XVo0vtx4dGJPwHYT1PRhnJyV+y2cupGvmTRDXVP4YXkciwBlO7ULJz413TxgqMtPzwaDDKNS2me6/fgWeIgt8fwaMlTfJwFX8Vy98BeZkLbdsvEaS1x813ExqZ1lakvSvputaxWYd3L4XTXodlp4Ijw8zKmNg4K3aYghV9RgwJjHwzb9uyKDwo7jVB6ZY/HhUnB/OQSjmqT5kekLhHjpDkkj370wLT06QZfWYWFmTHDtRGu+wtVWtUwxVaolmuL/+NobGLrBQs7rwZu3XcU5xaReVLclNPRKopLSoBwm1YpxYJ3W3sr/326RoWaty8ri3kGk+ea+DHX7ExeUMp9XXXdLGxpkPSwCccGRXRCb+05z4MHL/8TxzG5OIdDM3Cvy3MyTjRPUZlLAbVc3sEMlsRigW5AlyF2hUJa6LPOltujFdm0c+LtZJ0V1irr+jB4o7CZxfE7gpAbb/dMK9gbpRxVY//eCbKnbgbDiPCzZ8XmGU2afyC1q+WpSV74vB1kDJYkOElONw+9GorbOJGiusGPtTM05CGV7kejCUqIGK+5dvEl49tNDfz1UFmL14rb7etk7toO2fBkLXhDrU6n1X93fHJcl1Bm91LrQ8th4RHwchXdcu9YeBJd6YMUeuIET2sQskXCWOoKE0wxyPVOQFq+mMbnZu5d8A2phTyWNVPdpZDarsEvfWlSBBpZLKK3eTtvClvrebGZXj50wxobRr4JFHdQ6uSdG+gLHBB/wHyqWentqH4KSTB2s/Z+LIbBPDgzmPBvumKy3gA6RKo9sgnb6lG27wt9DuOm0dh/LtygVU/pjWaMsnMYMgB8KgGPoUq6Vi8b7aCqjTbxeOCDlkccUYEB20o12JDJlC2ga6Wiwjs1g57hkSaDw3cBsBNVPI4iHA0en2EAkTctaNrxjYaZ+3HykANo6jQNDH1XHw/0dTL9zXAtPRhKk1EmFmJVFmmWjhHE68tSezqFOnf9jTjH+QB/Usr0pttPbVFmePd728INhqs6YE+7dxI4iZ0QJKh2Nvuo2DgeJCdQbS0kszYSL+TM1YsS6hWKo4fUUwtF8GXuWrmO0w/oU+X27xe7Efz2wCXedvRl1TuX26QgBr1g12vcBlgYLULHQF5JqLAOn29znjI7TV29+GBWrLYUrKnnNTZKLo8dcj2ujIoOyJA05GI6/Ag+EGST6SP4MJXJtNovHExbQENkie5J2rGXVcBnkQ2UJkCzzRqw3RscoMzl+PEqsnBXrDggX5URmMpYsjeEepeZlclUYETCkqK4d8Wbc/HiryERafv7lCHEKa0fYtDmnHgCZTMiJUo8k0C+8B5xi7FBp36CXs6hJo2y7errW9p8zGMcWsJfLkeROnBtjzyH0Z8YA7TgT243XtYtuUTKZ/4F2IzQzMpNhDPLuonI86c8HDSqU7Mn7efLNJzD1ZCxAPCOA2cU1kCvNo+AwH0lngfywdX1kshtBTmsQerRpoLJvwbGLGoXp/Qe6i11wY8eoYQ5yFaaaspPuJvKXZgje9bh+mFMGw0AQJJyrlO8lZmczJiV7KRqGw7BzBrFPjwpw3BALk0oaG7TGJx3lmJnGo4LSmBOVcnBzYHMqjxB51ZZhKfp8hiLmHp6KGxu+aAe/y7BLz8HR8Q9zAoRaw2UcWS7tidleEp1pOWpJyJinUmC/4YMizp6nppvrEkdIxaRy6F7MV6cYGMST+yYXgmdBYxfJBNRSrdFvLTnxsPq12PQxlBCw7Q8r94w4g/wkuwfwbhv1Kww+E87E3O1QlRKoThyQYLBtZIotHob1+rZ1AD859RV2eZt0BKQ7Oor16mEW5oIuJtg39+GJtqT1UC/3rTfGB7E9pziCEiq2oufmgrfMifw4+9pVxlkzt8ed/0a5qaIbHNO6+owWt6ETqx0mN4uzrno++PkrDX9hK2NMEZwglqKSz/52cLsB+m0syL28+gi4NzFQEIqk64LjolNHO/VGynZrXub+hvOJZR7gvEz1xLE/m1SksUyXJaqsSdjOYn67tgutxe/0VxZb52mphR5r/1EyPUewa0e76pFNuFxTD+skHcFGdSkXHwdxoCXL+4eDxly5CMjqxdtu7xQPImUDJKD5nuMTo5OhwxDsOMQ1tU2OLZ+vtS2A3jYzZywN8wjlHwRWYPxSit0gk3fDH8dU8SKMEnyfj1HvRwqtvVRkN9WaCixejWnYDM7eEQfqIRFzZpuTmIzswZZYxolS4oHDabAKEkgUn4Zkww5WBoyClpAFUGa++ugDitU9KmmbSH4i4bCdX7zYwrGNxsxnnpfTeyZjYd1HPBejFfjsshTt9oFJ9opAQ4K0yHoY5MPVf3vD71bV7Hu2b/8KLLq45/P4F4KRl+LbiRl0LesGsNxUa+PCpVb6a2kqv99cpwPlCN7ZUW3opDxXUEhpbrSbNIZEtHewWFqb6O/rFuIF9MNv32FnGiQUgubGYVE4bUWHUolRpKbkoYSfU/lmqhERyzQ+wz7Glm0DzAv39UAKb092GkuJ9S8DXZ8A7uF1/mPKYHVy5U3BEREwTCYm6jVFfYXnWVXAFKM6dv31oV2NkjMA6ky+X7anfQ2wycoQmRBOLfmGNzEku6rxPEvWNCOmzlkU9DANXJbi8+zDtHku5A03CH2LC/4MYQaVdK8M4xV04yXeBewwyE2eXyM7eeBvP7sIbAa6eaLGIin+izMqxvmbZg+beuXZe9tWfqSJB41q3MAjpOZ2Qo9BC6UxxXH55tACDOPnbkGZbWdEuO+Lbd15B8RABbBVSem7BaNoBvY1SQAwgrT9jMGbf5DC4czic5a3KRESPPjB5/Qi2BpXNU0qLzFi4Ox6dgfSx5g3JBIq/nQa/qEnYRN6hZVLS/LxpJY0Fhvwu1iQtoRUdriFnUlto/cpOBbDrw3BXr1gnsQhGbtSde2l0DbAHUjZubcEF48YIUZZ8jHR4etCf+5aU9sPbAAsF749/BuCZeBMnI13dv741ew7xfL6YWZVhC1KR9fFIlrRRVYcFuUocTmlPyVet0kp2Y01C0ZoUQT8pFpGNN+L2qK4xqF9xyjgPVce6I+T9VL52Ap0UcawSuKdIfLfZJs7HybERj06qQs3Np+oKgPDHj0/uJKABco+f4r1oq1EusxNBV/pgddEmdJN/kmK3nAMcNyvBdRbPmzfRdn+5oGgvBwvdEFf5eY50KqyJxt7MThsjSVXRsraalD6CjpDCTXVijc8RL+FwMIGNxqkBTLwaFJggl8XqbKVr7JnzDLQ9BxVita5vh2MrdOHVk//c/fN1Ybjn/pFpiH55FwqtfHnDCOeY+w3nJHNMdkhFbbvL7TsiFFVoA+wA/MBZe2DpNY+pda3OZ3z5QxMqukt2jepBf085KdqLWqA7AsJ1tnwcq8vBuvAZMJjiLUAvCB5ejFhGM7QyEQ4YzjW2L9JYATkGqOfclHsqGGTLm2flFroqxWRkHLT1gqdBZ9gndvpgCx/ofTy+YkSUDpEi/ddaePjRqOzvk3ijJ0lkDzyCyAzvcs7c6g+YQftjTobL4gih01CiF9rRKL5vl29SadzbG3MJnMnZlCCRqJh9LFW/CXzVREA/9F9eWl24hOYIbBoX+Wn+zNwwiFER7tKwEiAvZKhm5+GURnIO2SkrzdbRt0YA2pJdfo9/ej4aAy95DNl3AAK0Mo95IBzPPZV2k4V61EFrsOCqnLDC9K+s2iLTHG/d40dt5IbjbDMztB5Jhrp0jlhfKY4RNEXT6saHZVyaM6a6AnAxg5VGG9TX9XSoAlIVO0i/AP2U1diawpMd1uOusV989VqWBDh18tM5JY6FOZcTtV8VfusTufL8eGLXAi3P6PJdCY79Le59xcAIAAwiByhxaCQulizhLCwO4bdSUcptV4oDjrobuBfKKpWicMe0bplLzq1NyKdQBeVE20v10WSXn7Eiy7ADbe3rhJ4nkpUPf5lw2Sf7RbrhKiV3U4r80nGxRW3M1IMKIFCoZL5L2oR5wMr0uI1a25XF5ItAZkEwziK9zUOq2jaDGRlty/Ff2C7djwUHgHZYhtjrmpQ9uCXz3lSYBigBfseZz2ie2VfIV7KKde13Ffk5KJvPutSlnY3laTA2Ui6YB62+UFH480hI3rLtylq7oh8OMKAUHmSRMocqzVYvkfbHlUbAJWX1DC5BJEr9xpX3kl+Aum+u8jLzhmjmqCNBxpMxko3c6pGirHyIAnG+PtXtKCBUlFcHtXKMA45MtUBMJofBqStvRMm2xcoIJrg1vftzl0JashFjbPsauvIxxG2Lbm+8qLX/x9k/0GBbCZfJFb98HXsypOZNCdnxYQy15Ab9oh+dmHbNVuwF2BtJ6P5z60jM2uCQ3uY21Xajp1lIjgB+Jq6miZwoNhHK1GtAfhKJK9DUxlRjtDTTQKhsoLbhH0hPBT3hphIMbn7ov9w9J3SLDt+wmcjy8xYgFhxAcvlqCI1Z4v8lHZy4pY/WPFSaVXChC+vhJAlQO9L31ehEaFpnhe+K5bOJW/StqaQaoMxkNvkMH48NWCuOuBf5NqgRQX5UxwjgliN1x++KWqu3hK6oNUTJgylXAoK6RAz82u5mPisk+Xed+fdjE8ONFFsohGi+oIhYqYg4JOX8l6iAiG/XcErJMrfOV68/Eygjk/2yUS6L3jin5b5naAm1XJNigKIAB1hnfAsYmYgube5ugClv6QLjm0W3KumFzlyHCQv0PUDGQ9LHjzYecmDLcP8fL5+1w6h3clQbZienHWFAmoqHphWTWIcX4kcurU/TMQ4RYYbtpIsChtJOfuKYkIwzqxvrAfGpT31zyRYuRZciJkZLhLQ3w4b7jo3YuaBkLt9b3VL2JrA9Dc8yJEIr7vuEXuKE6DWs0YvayiGLCiLrllLcT9XYKmAckYt7vdjG8If1t4eZSegSrEfygLgmxHsdpbxJwmN7RqPmo0CVkqxGg6yoZ5INIU1ZYppXTK4j4FzI7IUqRCynfdwN6F8pYLZPDeM1gEZpfIEvrG5BZRwu4/7XTCvyhUqfGKYNsEJ2ZYHMZ1shEh6rQM8JcK79wO7a6VY3K+8IMe25g5XjXNqM/fSQh7zVFfih+4oR3DvvYcuBHyHwX1I95aEGlPSbvxEb/3pe+F+RKMwlFQv5B2EK/SMm3KVd+lmU3WTKne6enw7Fq1ZLVlGy0j2z7B8e2mSd67aOf9GEfqJKzMW3vBw2txyyrKt/62USnWP0WZoK5yMSg0H573cgEQzHjd0f/5rk11LjVrfb5vjjNhuT9e7Vj6S560a0Plns2SZTyInxo+wls9pznSAuSIxqz0ueC5ydbHs6EY4kOmNu6r8p8+ONSfG6bI8egishgGd64plqa4tSVgdZ4IkLHPGShMfz3ZBD7xD7ofSBxaRiIJyJ3o+zM8BLHjYhyueZERo1NiSP8mbYaQePTaFyZf1mwOLcI8r1HJ2BCLP5AukXOQCI/67DeJVF59BZQYzVJC1TtVCNZaC6Vcr9294lkBHFcV3Rp5LfhQnpN3XUBIg/xinZ2+/K60g3OHmaPA/nqigYfoirjr5juXOluQ1ane+Vy3rbrEKMfNCdg3gTf92XSVMfFoao5S0G5KAShC9NDvGg1hZsetG6xKW4V5M2wq38MQVX8htBow9N5AJb4Leq7dQN3eOklUs12bMShCeMTBDUeleM6fH+b7F+zSCVbTh5stVE+ep5Jo9jdtj1OWd+ljbl3N2dcu5vn/0HRa45mLHAo4bniWBkWkU/BHrAABQFxq5CCc07isJWCXUlznh7FKlbK5D8z6cMLrWY/HCpAgO1EnlYcairhNUi1v0M7eKI5Q2CF6777t7GOhw72WaNG3RCLxFHYySmdcNv/PVmMoiz4jRHi2rATuoRjGPkwTBzRXAC9lvVJ29afnHnR0QVyLQQpWFcgV0yVFD4OEUtfGRh3oopgllyzbclcIROHt+z9hhthOEa0yC83SEwAtdGzRnQTcL/lsduIoDStNhXqIPrPFTLBaJffrBR3H0mTqjMAKOeZEsyTXYRHbSY+bzaYrDX4QjzWXx62Ov/hH28RaA5gjMV2xq5qCaxmyzQiIfDzuAkfcENl+3jddjfKmvpnhhYlKZxmpgIwYyALqIZLW/X4BRLPwQuIsYYX2NiDR2BQIEN57Ak4J2uxcqH5MyOLxkAJudQpGJpPXXxxr4c/FGDxbz5i0qWvMR2BO/Jcf38sNTeJqHl9mXef2AKwkqmFHaucCtNNsXgkWCh+kuNwmql88VaEFFwrU8AyZx3rhhQ6BA3sGz8JtX+P1rw4KR/vN6RQVmxyX6qONkzWjHWdlt/e2kNa3INHDcB8AzkkqTzTQbibY/ytRoMuQcx8xEyolfZ1CbqjF1DTR31aeLgeFYD0D/MnFquMe31m/jhVLLyKQqZpFSSfj93ZT0EJHrYf9LJpfmjsBZ2qeNsVWLWwU4ykkOtVDiYJsLJSC3DQ01ogmG0vElnFKSbnJUFfsbmsQQ6XvqHnaL3Kc3zBXGEsLcSo7cGPNX0g8hOFAcTX80p2NvCV7tF6svirWhiJxfzuRxhMmeh3LWV5prMoltiUM814Xmv5jgQKI5r2imf/FqqERLwz0AboEum6gQlJaMS1AMkFeGMwNBTy3Qm7heZvD2DjmCNwS8fHPC8m1WJh5Xs9l4GyqPzxpM6Zo4dNqzz9Qdsq++/ARoFCyXeMKfJ9jJe71zRD9W6D1+jyJ1iPMrzRhJdsyyuRYhdi1JLPrQ0BRaGz70N3KwigZD/AbeFDCddWKC9K0+2ZlciCu/aKft38eoZA0sDGla/U7IA5ghERAOTYjqbuloDrL9/jzK5jAN8mPhcRBDm/TcNmMUJIdiQFKFpQx63dlwRRJ1jnrrFGfyZY2AyAF58Vh8Rl23XxWW0rDT3uqTFf/NBwHR8X3QtLDQwDpRtYfskPg+CTIAfIddYPnIQhGYYnJOP68Sr4zsClUtH5fwI7voAcSVybMH9t04doT1ZKrp1a3XZTEa6KKW42+KfDPp9r9TC0PHRiSXRjk8UAUHy/OBpb0OsdcsqQolSbZoGEz1bnxeWA4gANQQKTuLaZjktqsjJqP7iwCvWTaYUOIIngYtHGQybsTHyTwK4TflRz16gdldo6Lfyfz/tEpb/wfGuRbLJZ7XWDYAq9Hz7SajTr/LLvF8qtxg8fe+vMMWo3MFGb07ci+EovRO3NLTve+SIsbJfb4cpto028mQlU4ZEaD5oJrUc2eo6dFltp5jeZag+dSPjNiLPX/rNSe6kOCe62gnrjSd6o43l2nHLiILsM6E7ZdGVxwsBvOlnUiMoGjj1YDl4cQsx/3hjl27hbGL4NGThWONKOmA4u4wxkNjxfIuGpaZ+Pk7vjSUkpbWXahylY4ZnCdcje8tb1BCXhcPN6AvJQX34+T7dPmctd2oGB7fV1dBBfUTDXdeuc8Li4apRd+6p1QUFAaDU6U+4DyXS0flQmJrny6z3S5ZIIC2uC5/JKSrH2pGZ+iJhnVnWQ0oHGB8MQK/bkxqdOnjJBbBWOwjXMOKr9C1MEUqbO5qqhBBHabtLGpODqj6OnWbtJFGwXaHMPSlOmr7Zi4ZuoxZPoo5aUG+HuHZqf7H1eOKwwwm+9NOj/1E8glRW16FGPuDge22VrlAwcKFe3vsP8+h+wWY2Z527JS3yQfW2ha9h/4JoPbvyMxQdSs1oqasFDBdKBBrRNoocGppf8Lckxw6guUX+FQ4JtRtRvGCuWtTXlHi3046/6eZ+GU/k1OTYcWpxXyR8Uk9k44G/I4vo2/7y5JdbpqJjbHoYmCsSCyc9Q5qIPNbk6ab1U9K0EkFqcdRBzfCcAmB/e5xsATfGKIE6cUQ5n9IBEDXdNYTo/ZpY5yH/L1MZ9Oi48zktfhpfM6XwL3eZnhu4a+rGoGuqvaJMY3f5pUF7gOtRteMFJxPGGzOyZ0vZg9TIP6DPuxzb5Gw5clcpJB0LDS6X+Im3SNBVjfkdR0DiMFN/Bz0Amt69y9r4F1KflVCAM67SQ6+QhSjHLD6RGakR4WjoBx0R0p7VkaAgOVhKsjPbgU48Rb8Hhgim4M4N2GclEDNE+L82I6gUe5hWBT7B4vmWuiEmEy9alCnw6qoKFPRDoz+pqFIA5W47jRKkQ5kf5HCz8Kz5mTeYqGDW99jE3rRfCIJ+2MeCziWRdmvOQ7C7WraQ46eVeX5zI1a78cpOIj4bQ1l417baoS19FRKhm7tdcuwsDYx0T1eFq2+hpZ4hZkzaOPPzOLWiXnyeWyzmfRWWLX7TAh0ZIr/YZ+HLZdaKxg2DXv9pcrcJ8emIH2HIskUw6VWtfpVFObCtmg9W2/AdR8VFeVx5CgzlC7d7K+V7V0JUuTD0ttSdpw41BF9cgVGbXD/kSMPyuI+lSH3RLOFWN2SAJvkJpX+xBjWlLF9UrOzcfAFu/zK9+dS81VTDjnVw6MKi7tHaob8dyD3qtWUMNGUhDZTI0Mb8v6NAH3piq5iZms+w+mCu2Uha6UD8mV0pHEsyouSo4YuX4CYG1gz8Uh5J2FBYJEchvS4dmr5+ZN53J2xSXC4EpN5noHo/TaVghkJFyTP4NI5nbr/E8bpVz6og+OYlJGYooYwVLNwxy9scESTxTsq4uBJ227ENCBBuaq9v3TS24IJFlaQ3QwncG0YyksBRZTEFg5NoAIoWm9X07eHoatz83ndQVuLbU+5/WFwGm+hyVlKd2hLju03/huYZAjI7OEoA1itycIB1fh06fUNQUnEgaPxIFdmgB7xdd2BgIRyq5jnVdwR9SINF6vwmMMoybui4gJ4/kKv4skjglave4YY+fFADyuGpqT8WPGO8klp6f+zHqPUjh5ASUE6zZrDK4l5NbiCbIPsLK2VL8izEwBp7GGJXiYgts+6cC7RrX968+EHfXGgZQR1dY3SAG8cx5AVbFm7VfTvVmg76AnAW4aKUexa9W1xOI3sqWbsfALQNW758ofSfJjFx3HbDnhk0uIew3J7Tj8JtQoKtApjysYTRkz1VXZGWrKPVQ2CAPXqGAd7zwDM4nj4uB0kmacoQ+pJErB8jGYD8cosTSlo3Ie/YHZQgKbrqT562uDRmDXtKLjJWG31bT2OUiSZnZVDzbU9RBmNEczbQiJID7BZljs5NpT3Ji3s/KByrRoZrkY1bEU8Os3N5VLEsBoTHtbDOk6SB0vpcYyWUPLg6Hmb0Ju7fEVYc4zpJ/aT8N5w0ifAMno07YIQJT6tKndSMPJqf/3tCDewC4tnjrJy0Ivl0RLdALOijbcxmzRYLx4UcmjXgFj/Pz/Rr9iPCh8XEdJpKQg3YERIToA4Qdqs/3QuEDrv1LEkSOfb5/69Axh0JmVCtxpjLaIpVScwJxyA0rDYMrdcOImdX+ygRNZvy8+5vHPGnzPonhyXr1Xq6Cww0vZFx8oZPghmlFOw/34dg8ZwU6BAnALCYYLEkvFScBMs/yMQDkxOavR6HYoEUeCh0DGHyPy6KsxDPUa9cwRUx+e78B0XujsegDdA5IIief41J0YWWdBkFZrU4jWpxBMxaqsrkRktQ6SEK9MhRP2Q3AegVdHr6EjinWlSeZHDRrB3DvsuFgY7NmOxHg4QhtCYze/kTQ77BTsHoz/28oBM7LrrwwpCzl9xxitvSmvl6JoAcjCRcxfkYe+oxyFYENAOyV7yi0gqmWwEJOTypgI4Wzm3uAYvOg2EmNVI5rEOmeGB8m7/J09Moov742D9JvZUMQS88yrGE515osYNEjQWdUX6XjsnXqlcLbawtLB/kDSplp+6KNrBcA+xjv8ICcAk1/IK0K53ReNFjSmjUBykPMkVWrHXYkRaFlIN+TSFT5Qkf1o8IFXbfkXEbus5Qi+WHllPTG0TXPXJOJhpwsgGdw3daD3flF0nxNKW6K3mcsRlti94osPmg0iGR40geMo/RNufYxxEylueW/s1qVzK+tTWTkg24nsAKSWsPECQsYVlCiQV/MS9BdUkw/0eQvl6UOwhJSrNvDc5AsXQHAAsg/NJM+0H3FwvP4LgocQQmO70KU2TkLStPgDvhz9sY7cOrqIm8Nuj6zuUk8vTrRoiwPe6Xmn2JL+itSFdGt/Cw7Ttya/Wu0J9bXNKYOWG5G/Pej2SYbiFHQAW33F35n4s4kwqZZL+xIBCD+qvnTbFTxvdN9+S3+ibu7+ObIrI/Fp4PhLZyPOf/zzafWguvUNp9h9lQgmReyWnRPdW89JM0RvF6oP/5TCzaiSdttt2m0Kp9Nf0ikgj4CkAze5Pi/z5mmnGBi27B/RQi0Er6odxqyLbWSRKQmaMVznqu+ZQys8d9FvdkffbRxWi5WYLvE/rosrD7lxmRIIJz1wrwJXZmqF5bScaRTepPN4qYB0vBrDCQFziW4XkRItzrJblzeZCloL23IMBQwvHKJdGBGq2/xQyQpCj2PpUWje2qhtU58A1MKCcHApvxBmzwVlgNKRI/+EewTalRTYI//cynQ49MsXBM5plXvSf7OM/gABV9KZOJgHo1AYTxbOaDMW7lGwqB+hb6GteHdAsUnhyylHSpgYGVqjVGMrrJJlVGISbqfV5xajD/PdgWNs0Do/vjetN+OC0vn4N8UIAtHjSPxRiBylrWcVwfZkcKFGNyFPGcz4LdI9UVBE+bf3sFzHFVd7iU1+fBNE6Nfbdq3XzZ2vFf96/XnKMHR1wawXw4i3dDFueA9FmfmvrDKwW4/NgM3J/t9sd0mv6Xdox2cE6tKT53wbfJ1BHAJ5HQvIoW4JUfyMMvoYW7G/L9GV3jSZlAM20XoiJtxIyXwv44TTqgGL+LRGEp/AWrmvpiQ7IxbdHnQVIiv9AtPjwrl/UrXUtxC0Ekp0o1c8otb96xXT9DGAN3timwETGqserPSgOy1dAgNDQsQOvd1VZAMbnpEBhKfOf9jXWQxzBvGDHprZPMEs1UEi/pPdDoo5EEGg4d9qfW92b2NpY0BP+nqgbBNd4gQ6Z4zAjtqwNiGlvrwlAMYl26XlNwnQw6iCvz18MB6TNFTNkLu5H2hsaqOXOdXNCES5H+Y0ku9RxsfduJJZ2F43BDK3aZjhpSR+p9Lwu1a4JYvglkRvGvhro6Xr9P4cZ0BrBXPNmSn6uRzLqq6wMcRjbhtKCkdh2CrnmuknDjbkR2qV3T0P3G00PipefishKLl6o7niSHhFDlMNLtJFkovOGQQX/EqIJI5uaPyBpWSXTUyZistjYS11Q2cvEC7k38ZqWRzT8UZ+OKZpXnkcjHqV7I+EYchDeBFAjT0VjqtQgWRz6Dm7WMAnT2fzAKnpeFKjOqdOb3J7BzNWxOQsbEXVN2bmqeXLsJ16bBa8VkwBFw9i+23/onSIrtOVZ50hgFP2F2xlQ+8wR26f8jZLeszoJ10ljl/BSl8PSX91h/p6gNgq9pCirNF9r0jDNYzj0r1LwBb3wi5BOYtH33foWeVWXxEOkkO2xIpzkGzEKmsIVe8jtT7JEFbx6Ulp/rf6LjJBqK70GRjL1G/bqVCJT6RUmJlyDwg/kElPOLrImxgDguYzM56OTwOlfvrNGSVLGimbOgVYilKGnt/UGiBuYuWedZepwWh7Re+zlY2bKDZ5z32e/z0eQoQHwap6imnL3l3R6WUHwloIn7uudO3XVW6G862lJ7q7H0Oxxsrtnb2NC2w00F/ouhkhqPWrjiuQSM/cKrkJsElMjiHmUwWxKbFblbgRWj9rgiok60ofXgbpn/myHcdWHTxh+nIjpUrDKGzhiEQbqW3ODvcIKYK9KNUf1RKA9JFnDjaZMJoPp3x4LxNz7ahzAgtl1T9yl5a2Kx/pA9COvwcukEvhb4tlOBXh+km0g85sv865nrvklDyvES04uurS1mzZa7kjbDtUbUklf2zd4zNjlOVmIl1/BOQ5Lv/PKfPSxyWg9iI0I5rBQndxC3jlbr24k9S6KsHWt+RWM1Z0RlTGaJa2vyWHs/pl6NVRvgSwclLI54BKCL+R/Cl3bcIMEXgw2dWE+hf4z4KuSWNCUFDkiQ3npQI1cqk19KAcg9S0E2TCvX25w3kpSmKc57u6mPoi6PrlKOQEc8Re56q7WLgNVlWs48Y/ITHAxxJ+NYL/1k3HnXNKiGY2NoghlY619kD9DJcc/x5E513K6SCK4mQw05KyzI2QnrfUzLfM4GmJ7+Dt4TVkbgef0Tn9bXejf2eMlQgd8Gwt8vFGlPqBx91kWcvT6V5plKPetXsGADyNJiiu8UQh+Jp7Xw7lTt7dJQzydpJKRiOn5HBAudLYfDj5ycm9/46DKvhlqQ3pLnMT3pAb8hcYwXsf867ydeRGHQ7plA3M2xGGQKYtCctTzd8nz4SwEllPcmW9FW8Vhdc3GcOvS7AtKjUm4HcisF6lra85sXExskeTvZr2y6AKewaxS8798QpTh0HJ40kxMJYLUShP9lqtNecNj7a9ZK3CZDq0LFxyVzZ9zyrkFnyQahcZMRVS5N4Ts3g/PZoBS75YM0BgyQWz1LDclJqEfwDBYKfGjJiSKO0aDuZ+kaWfBnfi3yww0hMby77slSzmfRr94+qgLgHcQ+thnjcU2iWLhqvkJzgNwcfnsEkpawWunOKzY67wKgapW2aqvu5wGE210AVgKo48ktYDMSoe6VUezru4AIsV9RoJVvZE4YtY+0bgAzr3QQXxy1FqbQKFG/5UQfzP2u3xvnP+GZomoA081eaSMnqdw62oMXCgDzwxjCoPinOimPnrMALrbx98MX7egv+rdQo3h0MnB0/XxjsumOARBij4LqwacT7wL2zQgfHLrhAt/pM0q78KH8ffI7GevSm6a8uHYXMIqweHpUchuVR/Yy0PmQnF9DMQrL898jf/Jokq8ykH/9dzikSbZXEuOt1W9Nwr2EUImSQeMqr4QArcBEOsTv1PQZGdAjgXlDhooL0cPJ8sBNVPsJh0IYKYvmfPJrYou1RnFwgFfocbwVUeeYzYDjhk0kcaZqhYh5v7iROiDCc+IlpgzBudmS008t6nV788IP4663XdGvfPzNCRqPNcbjNB0qLztsUVL0vle3hkOymEtSTJHOxsbWVgTYGlwSg8QxuZ4kZFO3Vu/GcQVGQmUiCWN81OoOOq8SOMKhqMfVVoqAW6DnQSdYIPI/yLqNjeVXuvQ5LVpI4DjBbaWgzXFt9QEpoRuQIFnrKKbgc/wzbOIm+52dJaXHFxUtLgHqhLOTzad8JLX+q3eAYVXcwlxtB4jdYZ8fXlFq0EOrmN0LfGzuAY/1LviF2uyEZcOkE7Kg0k/9ZiIUD+tISg3gNmQWTdi23f1OhrnHft1UF8e1CgmjEIP4fiSJzeXPZKqPfnP1PDyVwaJAEPYH59L6swWd71VAc7cCp5b/dsMxY+ORYKSD+/O+BWcNl6DEaFAXii0IvVEzXDyxusZCVIP7EN73PFJWpGBSxukMCT8fKOeus/i4Tl8oEjfXRTrIl/k+rYndeKh8Q9CUZQUDR4fR+rfzNZsbJhBz5+dCeFQn0aa2/FO4jkPRx5/i0ZLJRfm4sZf7MtYf/M8q5icmOQcWQjjP4S0QFyhLcesaxwKgjLIzkO0tKYhB0dmjCzIBzhCL1wrLbQAAfF094xJ9kZbPtdK5EgHIlpNNPgDOcdrEIAEPUI36vWYH4mkbe52joMFX3wNrB+kruj47yFOOCHmR9i2m89cc/LCNOFlA298bUrc5r/9LTdqNFiQIB5+Pmdv+XvjcjRBZ2sWSA50tVqPk+/86EbDglzhOXBX6mqFL6rtrvPddi6VzKg3fBgvIQdpitk0ax0bxrDmPgb1QNNGFXXgnvWFoWo56JotkG8ySuOmmNWx1C3KVcgDaxdAbaq3rwbCOKDRnGuYzSsLSh6siZG5t+hPZBbECW+V9LflQ8Y+hUwm4EhjCVHuz1RSaS2h3qHk2BYDOH+O7nNrMfOwF/UdNXyFA9q7Kl5grWf/fXiJz6tYcFwVn6vi6XspJDDDBjmCfSDooBaR/+llKFu8HaPXPOaLTEfInv4MD+vbAb28NfQnh3OfxOF9b8jdigoK1ZHUvgTHi6RcofsJNj5W3+ouJ6kQ64uYfHnmxg0O5KfNRsm4PnLfhf9ZifbqDYnsFuzlKWAq43yhnnyUSxZE5wiNiqEVIl8dAZEYMH/mdG3GOx6ou/HdgNCmqLjR0F4cBt21OREK2WNM/MoeiFfbtHN9hYT2IBAs3hVdJFEpIsMsa0rlsGRb+gurqVArPIqd47D+l6eRtDtYcMrYA2zr9bdbY2JB2kkRUdHV/SEaLQ1IHvltLn34l29Dwy2r8cJiRLJ1IoKmfXjemmfEvJ/kW+8f+6m9AtFr97HmnPlajWuCXqpavhXBckX41tdGRW1FRrLpUjNNT4kNvkNIemVnpbccKq16rt3mBLIyszNy+YQkKJ3IjQti+XiejbDlucU+68Gi71nbRANz7y4QqlHpFjHZsOcj9P5xzk93q0fUusphptBsH/Ntww+wCQoAdIu6xYCFBW8fjxUSEomebtFIGTThwMT0/1AcJZiOT1Vet5o2cNyPX/AI3S7+hUXHd/n/9rYIpwe+3xc2rwNy2OcKTAd2l+jMymI3TfgHBjY+405+Y2VUJ0HvRbHiDH4T76F37orY9nBHy4HsbFnKuw7kbs/sS/XGa6M31swXs6STqnH6Hc0aOJSQj4ncDWm/+yQ/Yb732Gn3gAjJRCtJPAKYyR4ajgzBgKZLOkUqJMPj1xW1x8EbpHEf4gzvsuHX3/YU203G3Vss0fM4bqQxYbt85E5XylF27eCT7tiBOgMiB3ByebCEVObsvGfVp8vBhZ3EBVJ9IINAezMZsZyboP1Ba2RiEuI3gCIsw4I+mFB/ctdsABQJYItUN37Zt7RxV+CYbs58HSFoe/JFcp8dEQH5tcjhXR1iskV4iFNmOvy05JceIrY53pW9EKgxnXCJeNMe9KR6KpdJOm9vqe4Jm35xzwk5IDBAYa/eZcWnRKA6mM10TZ5865nC0VEMvy/jxHfRHf0t+2JVX/DTbhjPDPKeBF4K0Ns6UWS1tesHuHTEpdOhVt+sBjkFJ2uwpDs+CVaqs1Nb64gqb5jXb++LFoggX1FS03UbOGtrqQhsx0durYClIMwFQFgfSfaTubBNy3aFMiSnTwHfMhpWG46qKKs2eNXpXt7jcFl7PVHEv7HGDQ2f4ChSVhogGL50kYy5n0AD9lPBC6r7QGkz7iaxU5XE0yYDSsW/3k6+K3dio7dKf5vmfONAWQi0B+r1hr5eqbzE57NM3Rv5QpRK870T/y23D/RGqTMMutRWz5gsJCz51aKirSKOQERgKXjjeIPQBv2+EP5KtZKOJtHiP6/4AM8P0BxPxYOt49ULOPhnZQU88Ihixj13NQssmcudzfGGHKKxwPSU2phjcymoPk2l6vYuzT39AAY2a+4zwEwnZQ65gKx7MKZUr/jkrEqLDeGbnnF/4oucqTq1sgZaPATVef4HTjLOgIvSryTEPSamy2+Sa9XQPHX7XzBYRQwLfGGo9qMalHMAHIOBUKy2gtzBdrc5ECELmtXhHbLdf9G6Ac753uCWNPX8c0RuiJhDWRiSSU0GDuXo7lgubKKEiC80Ay2Wvidb+0U9Xlp+BL9XLN+aqbKuUxlOKvDH8Rhn7RVZSApbkBI84msERh7G+ihH4oMppfgcyCncliIH2x55Ura5XvOfyylKpsdWhwRn3u7UYCsOL1L2/NXgWV8ksTJuCQOH+BOe32QgU4vEjGvxuDauuymOXPiOAJVcEATuKYD+TUWv8cvq0+p5iIQBfCe4Nwoaf5cUKhkt9+vYjJh8P+Pj4mnnIbyhnlndJdjwzayZ9rVkrAQctMpCQ78HdJQx8JoRqNM48YQTOw1dKTyoNKlDOky3AC8FQTvio79elf+KaZ24MmUFyxShENvg0DZUrAzvrgqAW1HFmsFyGpX8za0MV9Eyc2jMyRTxYBy5uYrkGRgmcc7IvPCU+0PMPhUjt1DhS5US0NH+93vkAiObDKMzfsQJlg7fSBlUWnhO1chfQUbOephGVOvRYI+Mg0lntoCE5gMRSWJkTte4zwWmH339wNe2sKfdS+o9x2mD3z9Mf7MoSge4p8WYjuRRn+XMKRufZuTNkz0EiSIIoufYW1BP4EYcZbcL9fvIK4OkFO5KPmaZnsxDVKvlG10R0UGFcmzMfByoHINbYLn2rIezy728Hk2r3I7VQk9fpAN7Pl7pRMla3od2+t8TE9KuSaxr5XVsq7kI1aXkxdgx0MNQgpaXrJzh/Gyv04nPbrR7Rykn66D40B1A3zfCciAaAZfJHbiQ5Nh02+jIZQ9xiY6jjYL1PilN5wv9Cl9yHsNB2ibUjsVJcuzNohxjnlKpsvHRB5cLbrkmYvAvC745/jhnnJjofeawmVbKFajcdT7cXJk+55nRgXiK4vWnHsejwOHHFpMsM+FUakceEmVLgsePI2O7aAAlt8KpPOElyQtg21MMlSY5VBvJEQ/OY5gzLVAtfYLzO+s0fGi4XjIMmpexuowcI/AsZai8yGaoyufDsQNSRRu0un/6dPdtfd0yUmTYZ2pnYE53/Pb7BZHHW87Pgjs6Odib58gZBGfVYafEsGrdfGOYNcJDFlfHCJVhAlq0ajbrFTEovIC/Cm4AvlS/TwJ7FoxzmYmfWJulTGw4WFhT6s9Lc2W/BT6WLrVhRlO71nXQUjUuWYiNvck3vLZ5TRQ4XAxFbm21n8msm94qRpXh28OpkFXNNS8yMIwFF+/hFN4fk3oWla1Vj4qwM7PkpJfV+IBMnKLmNDceOFyXAB8lC6mDlSpSSYdfgR7hC8zpSpLB92C5j97105/6tFXC1qnSgSu24qL2IpWUY836+sjLjQ/aesHvei9Hpk5vlj64hsYidru4/FzLYE9X7KR9YtWQZOpzSvwo60b2hMc9szSmnaWsVhFYCj/A7sGRFh9gJIbcZoc8C7e3fyHiTi6LZSCgnHee9BjNPMWe0WZCkyi0EcLXHVse17jDKX3FN7Ztk8t8BlrbCkqUOXGocHuiuGYZIqote9/fbztmigmHZC61/XAwQ2nyVXt/JH6JSRK+QohZKn2QusqVaTd+QLNmuWc6vt+PLUI/pSpOyEwYNaaa7OibienKgkCG7AWoz0DzSqa2Jy0AESMj9DLnlFBdb38gtUG+Emv6Y7jQzVB22ZbL0bYQwKLNc2g3jo5iVcCLDluohdeYnUXO2Ee5zmPfUSnJRGDuPzpwAR4BvvaIvAhpNWMrlagY8Vp3q9TNp3rRDtvQ0p9dL1GXWGvPNehF87dDG9QsF5RFKm0ytoAdhTKqFm1GCeJ8amThYH346QcWXMSzx1S5A8ExldWWUSgImKKyhR2nDs3/vzPdYkmOLHNjthlaGQh9OsnDBP5jjzhTS+0GXkHX4odQzcgoks25Q69C/LBFfWuFY2QYE4wtIsqOG0VAjjNtCGUonu1SJR3Al3GILsQI+XHxlgfKIXP/qrRWxX4mvUgJeMkXSXHGx6AG6NJGQRO8Mu0zNlu6r33B5x8LJDUWQ1BWXfiQHkl81cxXuQ/g1lbrSrBxaw/VkBrXrN0ODfsGzBTqLXkCybCIQlBDWCBxV14rTSDhTxiq8XEhsj9iWOmY+QO4Nb03kitHLm1xbFNUqJI15/JdR1Q2/GL7746IqaZZYtpFXGu8yGnlbilcMvhVGAkPMpOu+ZdeyBPapMQwuaqSxX9qpHqtp2qgm3ayvIj5QirHyf+OoT48tnBeKx75g/iRU8rJTwzV3OOsKNNvSg/71qNNo7mxGOKJnS8c6uNtkHo9F/cQh7obTSFmMVHuVgfmHwolhXqgaoWTeMGx9hxf5XGRu11813pV3zg/5AkNE6o9/2w57WsGynMEV+z92qXXNtFwwc7oNn3n6UC6BrDjm9q5tHtXGpnh1J1KN1l+MZ5r6i8c0RPmY50XwDaEZVAAW3ofSiAegwxZgNphef8zqsVq3b6numjNi4YtQbtYDxnWeLv4T9lu4ccmxH0q+equMojUNOt2AXLjU4eApP1X+kcOhbP3ReSuY8Ua9RrE0W+zB4rlKX8fcyDTlXdHQ9JaA7KLTMdh7AoNqSY0Kpr9yvWWnMRCdzKIakiigiHbDwQgFAMrteEcHGaZC9FaVKR3Z1GNWrPpODBfskxL6KqkADg5FDASGOYvtbDU/h+PJzz2C9KQfthBfEW45IKk7Mo56PXjrBRTx6vlkGwBE5fMdBwm+qzbo7mQMlxwXIiA2wNRDF3fTfgtlm+FCNqN5iAMfmLpZ5ienOz9mF0I/aRmo6MsR7X1hkvpiEUpIcJlthmK/wpPGpNm+51yYw+/liwHfg/3toOYk0rIB/wMuohL+nrZzZJwj1tSDqO2rcbeltHtkBQAImxRmzUe1Dh9nzptr1NLs5/pwIp8pgAYLk2Ga42T1ffNkAJEWRpyf6Hz96tIsRkHNPY5dP69m53FGIcikXgKD+SyAEVjR9idV4CxeL1px2iisOixjpMQKPdpt0SMMiKtFYueiSbBQ/iGXf9sKRshnrU/iO1IKG/03Fudazd+oBfh+I4zIVa06F7Dt3LaPm8nP7OMDuUK4gz6QFh5yD01OdnC4oSseDje8jP2h9bDt5lpw/SbN8m1HCllPJBOzXNSQRcEiKXG27PcfOu/hHRupgHfV5BDSb4zwtSipsuQpJidMJFa0gzE24Xe2+n7QvGLWqFq0cS8UW6FDfsfJF1rSlhFv6kC4o5QFCNR1uGMEPPv3L2rhAHVKvIWewQJgKqdojrE1ML2UDLzYOx86xsPVFDDHegGgwjuv8SbFHvTWH6AKAlr5WD3oIgj0oATexbUqfydF2kh///vlX0VxFi8PkZuNdDKq0lSqLXM2DgOGD/tkGPOBs9kqKcZpmTz62iwj+ZJXPqWo0xLH8CgnHblXOnYv/yO6FDS77wL2lU2jmzNXavzdP1cISO7S0PZEarq2/IgtE/MOnPmMVWzMDazymDZH0Nrd5snW8wGz0Hcz0hCm8U309XrvHUk8i2cNxteoz/bAqLZI7omFjrC8CwoF3Dvj/eSN/JY0tncE6iYXzCwPCAxBACKyg4ONt5JRMsODiJUTRc0MopE2A+d6q6G2dearAPxJzvafQR0Xmy2DuMVrb6A5Go8gtoQiYVL8gSWw97zMI+qPFvmTTyWB503n166WeU0G70PRsSwwLg/iUse1RFc2M+dkxk0+0g3mQ85jgYl3dVQ8YN2c+idr+NSwcjM7OjaQdS7N4B5VKlgICqFtSoVbTEqaaGT5GjgEGb2R9X5nFyygOyjZCfer/S2Sm3uxWG1sCGYvR1PGHkVABMXE1xuWeVR6q3CFXni9IrzwqLyuXz81aA+G9E2GXs4O7azc4FD2TqgQEeabC5CVmlZgTAHT+8zaFwvi16ZoptTl4QlV12LKJT8bGehwhGO/X86C8uLnt8WCCYvFWkfQ75wjZQr0gfcTtfBqJKZbibfTo5ngqGxeqtZ2ufBu7ObBK5m+9kl5f8DTrZneDi3IyS/MzsKg7SloBFpcqJBWAdMyt81uTiRrXxOI2rr7Jyk47lMLpJmnSsMN238StunESQym/4FP4Kcl1r4kL4Xlnbsg0+zP0zdGEp9DkWF7HROrWUhRh578jiRlIClL1JzpwgbqCFZG/bPX9i9kaqPBWFX6BXgjFw8KR8xa6G+4eGsKQhv0Gxy4X2zA+inRebCY2egQDBBB4d6KHhLWozoYraRJMHUv2+KPlHApZZhjQHkQrCfW7bcgNZCYGmBCg1AsyirnyToDl7CM8EQfqfdF1XXfFSC3kPTtOfQg9F09SyzALi+6YY+nlTDAY2f5B7JpAQY/rNmtPAhKPKK0bRcJiGdMvr2yFfKMOW0tX3Tv4Wtd/d9D73Jp9AhdppAoq2v7RN8+XlFR3VJAQhH4xQNiOheW1Pg/9qv41HlSccxbCSGFwaHlerM4Itjg1LtUUO7qjWX1Dxo8d6Dd8xG4GFPwKD8ATHA6wKZgGGX9s99xLNUVIczEVzyFAJ9S4SVQ5jE6JyCu4y5ErA/wTNu69rwfQSlPkY3XzIJzr2EhcwkgXxFKFGyIb0G/7eZaXAw43obeEkCTgdqJEjNqOueSIQn23tXtT8KbkrpnZg3tPsBkEyna5F5trCqPEhYMF+0b+MvMyvtPtpwkTEZFT0d5CGGUj15orHUeseC/ZF5hR8ejyy0GUuknG1gSTpsW8nqi+s/QhUN76ziswrGPQ4lqMI89wOpyYYqZhqYRyyMxiHDKI34w+264pGJBk9orMUSyXfRB4BS6vmc3agWoxgJ0bHTFcmKdFD79v76jMMz2+9udrmZsCd42w0mW9l9jC95pNX52otwlhmQisrmvUn8xUlE94c5ajX1tsbPeMpg8LKXLXuS0nxoq1CJVQbYvaY16Zw08ZQPTChacARgqcTV4s5SPhpZz1/hrABB3sj5UAyraJYwrQTC8pX+1u9A4IMH5m6jmFl5J6t34Odo+pljbL5h4ku5MWyzVnl37MlXk2ckpQ53jQC86fX0Cslivpv95bQhMggBofYPDth/iFg8idKqF2TwA1ERNTdUgmY7Dzc5LuhoQ7CiphyH+A6FHYOX3MX0ij51U8z3xtSAQSidiYZThdxy4Uitx7T6XqPug3G4fxanrwdhZpo33N73lHdpF4KY7qAo6WAQkXiRUt2dQ+Vptkw5D1Lvrm+v8YPAiPrvE/Koc5RKF9dEJAh/pTXNKWar9Duo0Af4tb/Zbn1qla20vbGMSKJd7EqniEJhfsyWFnWowvuS/MA1lDu0BKw8rJKRnQyb/1pAu2YRzPvNGyy2JvewojzlJ/aopxf4WSuynP4jLWI3xm1TcwjcN7MuCJ/94oVEDFt840NVuJxuObGVeql9shK/zaaioWoCAPLTgVoXUUni6xOAhIdlcaL0ETgqhWFn5CI3ie0nSas0yMXro7Izjmth0pVvjsLI+r5P9KZQI2sUisnO3QWpEkR8q2PywlB4VWsKf6vw939WfX+2iXbE2/rxhwgRcsZnaEQ9xxqO+4Y1fnN1mqN9JDR3RYcXKxSmhgC+/YKDsNqiI1jbRa4v+UqUAkF16ekLaqKh2gLEGWGPjeGKLtOgMPtkda7dKy99jZyQTEuhP7LFJeAduZ/djQYb5s9R6Cj0d81s+ZVwX4nwtiQAoYVYAgVtZX+FFzPvBjZrlMFmRfNY51DKTjawvXyt2FYfCNbacPH8KsEt/ojb+ms9JC+FujnZDKpZQxXYY0YwC847QBDl+TXszVSxtuPuDf/eTiD6oRbgFtFd+VUP8SKEj2fGDd/8wJPsIuN1j0WZ38GEGLa84QYe7+CFjnudMRm+HMw7p9mSHXFN+dzkaRgjpJZ/ig7B4botPBwEt4im4y6CNvsKAfDC3hmA8y5HTllICVuN6TQvEDi0ZXw4olA5o5dCzJkuA5QJGE5FSO57uvfEBvp45Rzmfa2Xa97PWWqga+zlX8AGeYbBwjGiONS7sw5QNPQOhNPOah4uQ+zg88h0zfqaZK8lXj8wb78Q3M11Qai0RTVguZ0UPB30a4DjVqXPsUIgMtKV0lhwvdAj+TSuf1kHNaVlK6VI2Z5+eX+mEsFPGnogKdZCwYRdphFAvYbtqA1dDtTdLETZZ/oCRjrS3V3u1D2+Xca8qh8d+2qX8s/TomH2oCe6EC+2a8rmapv2ZLTvyltlmmVWx+bhWtkpPI0AIZUkLOdfhJfl9TFc3uP9ExPEvq5ktXVBd9JuBPmNbWPO/lqo+Inx5UUgiCC3pismATJIURSoPjT7JNslB1DJqShHIqpUNBdzZUg9ItSse80ur8FzqPu6YD7hjoEJIXxgS9sbZ0SkbWee6bZgxeOF2VW6spxsCNOAPKRIfSdo2B62SAGmIwvM5BEIxLDQpo0hHlaLBGS0Ayy0epNsD6M3Xkq/uEcgL7XwlKu/ehPiU+P/rMH7VSyA/q9aMZ+gfGe5lam0rh2/9el3v4gHqoDlBhUBO/u9JfpSUUOJG9k1Rd8sx1DkmnbxoKT7jnfVLRRA/a9tMLQyF7wqyojZZZI+/Vn3Und28V9A3C9v3M9JMBHDtsW9uBMK1MnjclUpjp98nw+KCa7L7izHNDogB+C5VfZEVOepDgU207X8/CqHL8MJEhKIHwd3FPNMTIu8Jxp9kvxiZVaPk7Cs4GhJ5QI2fh/iTga7j2Le4zXmeVUA0gmPiF7ACQrwd5d0M0yeUwbGHVXWjEqb/eqmFF/GZYOoYphP4ocA2UkCz9jNClDWIuu8sCmhthr6MghFt41cf14RDi5sRq5ftdl+zXZ7sPkoZ7/IaCECarRGMP3AeMvjElHdqT8BXalzWrvkGFI2HdKaxNokugiKpHdE/954t8NoajyN1C3EwPkbg+808qdC0NxNY4FxS77Lh0JM3ePwpxrUmL4XMQpcGdm63X1VrHfqc4pdvdnTSmIqqZti5OWmySXGxt11EirczEOWJCadcrY2pm0ciebuBmg3Lhgq2S613LEwDiIMFKlNHql1252pfhVnVNi8qX+PROZHzr4/O/lelN7ScTtOLeokpPCSBCJjE9Q6fK5vqClZDMXIZXSCiodJhOC+ryqPTKndDZdDFmf7OBvH9GaLgxAZVYlzT6H4U+p2+VXmjbJPWWlspj1cO0b2dLaBg/AtvKQhixQJshykyvPu6f7ZtAEI5hinOEy5h+2rBghrANYkXUiZUAl6wK0rK8hV8DU='
func = 'main'

GithubUrl = f"{THIS_Proxies.rstrip('/')}/https://raw.githubusercontent.com/huaji8/So_common/master/so" if THIS_Proxies else 'https://raw.githubusercontent.com/huaji8/So_common/master/so'
THIS_MODE = 'Huaji_SoLoader'
So_name = f'{THIS_MODE}.so'




def get_system_info() -> None:
    global Download_name
    python_version = f"{sys.version_info.major}.{sys.version_info.minor}.{sys.version_info.micro}"
    download_pyver = f'{sys.version_info.major}.{sys.version_info.minor}'
    processor_arch = platform.machine().replace('AMD64', 'x86_64').replace('x64', 'x86_64')
    system_name = platform.system()
    system_ver = platform.release() + " " + platform.version()
    system_arch = platform.architecture()[0]
    if system_name == "Darwin":
        system_name = "macOS"
        system_ver = platform.mac_ver()[0]
    elif system_name == "Windows":
        system_ver = f"{platform.release()} (Build {platform.win32_ver()[1]})"
    
    log.info(f"系统信息 [Python/{python_version}] [系统架构 {processor_arch}] [{system_name}/{system_ver} {system_arch}]")
    if download_pyver not in ['3.10','3.11','3.12']:
        log.error(f'当前Python版本不支持运行此脚本，请使用Python3.10或3.11或3.12运行此脚本,什么??你不重装,简单,删除本脚本然后睡觉觉就行了..')
        
    if processor_arch == 'x86_64' and system_name == 'Linux':
        Download_name = f'{THIS_MODE}_{download_pyver}_x64.so'
    elif processor_arch == 'aarch64' and system_name == 'Linux':
        Download_name = f'{THIS_MODE}_{download_pyver}_aarch64.so'
    else:
        Download_name = f'{THIS_MODE}_{download_pyver}_x64.so'
        
    if processor_arch not in ['x86_64', 'aarch64']:
        log.warning(f'当前系统架构大概率不支持运行此脚本...')
        return
    elif 'Linux' not in system_name:
        log.error(f'当前系统不支持运行此脚本，请使用Linux运行此脚本')
    else:
        log.info('系统检测通过,开始运行脚本')
        return
    
    
    
    exit()



def download_file(save_path: str = None) -> bool:
    url =  GithubUrl + '/' + Download_name
    
    try:
        try:
            socket.create_connection(("www.github.com", 80), timeout=5)
            socket.create_connection(("www.github.com", 443), timeout=5)
        except (socket.timeout, socket.gaierror):
            log.warning("无法连接到Github,大概率下载是失败的,请检查网络或使用代理")

        if not save_path:
            file_name = os.path.basename(urlparse(url).path) or "downloaded_file"
            save_path = os.path.join(os.getcwd(), file_name)
        if os.path.exists(save_path) and os.path.getsize(save_path) == 0:
            os.remove(save_path)
        save_dir = os.path.dirname(save_path)
        os.makedirs(save_dir, exist_ok=True)
        curl_cmd = "curl.exe" if platform.system() == "Windows" else "curl"
        cmd = [
            curl_cmd,
            "-L", 
            "-f",
            "--silent",
            "--show-error",
            "-o", save_path,
            "-m","180",
            url
        ]

        result = subprocess.run(
            cmd,
            check=True,
            stdout=subprocess.PIPE,
            stderr=subprocess.PIPE,
            text=True
        )


        if not os.path.exists(save_path):
            log.error(f"下载文件不存在: {save_path}")
            return False
        if os.path.getsize(save_path) == 0:
            os.remove(save_path)
            log.error(f"下载文件为空: {save_path}")
            return False
        if result.returncode != 0:
            log.error(f"下载失败: {result.stderr.strip()}")
            return False
        log.info(f"文件下载成功: {save_path}")
        os.rename(Download_name, So_name)
        return True

    except subprocess.CalledProcessError as e:
        error_msg = f"下载失败: {e.stderr.strip()}" if e.stderr else "未知curl错误"
        log.error(error_msg)
        return False
    except Exception as e:
        log.error(f"下载异常: {str(e)}")
        return False
    
def dynamic_import(module_name: str) -> object:
    return importlib.import_module(module_name)

    
def Run() -> None:
    if os.path.exists(So_name):
        log.info('so文件存在,开始运行')
        print('='*30)
        obj = dynamic_import(THIS_MODE)
        obj.run(func, data)
    else:
        log.info('so文件不存在,开始下载')
        if download_file():
            Run()
        else:
            log.error('下载失败,请检查网络或使用代理')


if __name__ == '__main__':
    get_system_info()
    Run()
